A network system includes hardware, and supporting software, necessary to transmit information between computers. One can distinguish between a physical hardware link between two network nodes (computers, switches, routers, and controllers, among others), and a software connection, which refers to an established communication channel between nodes that allows transmitted information to be understood at both transmission and receiver ends. This is achieved by having a common routing policy, and implies that two nodes may be linked by hardware, but unable to connect or communicate until an initialization procedure has been carried out to establish a communication channel.
A link may refer to the physical hardware used to join network nodes, and a network may be a shared local area network (LAN), wide area network (WAN), metropolitan area network (MAN), the Internet, or any other type of network or communication system suitable for transferring information between computer systems. Ethernet is a common family of technologies using the IEEE standard 802.3 for local area networking (LAN), and Ethernet network hardware links (the physical layer) commonly use a Category 5 (Cat 5) twisted pair Ethernet cable. Alternative hardware link types include coaxial cables, twisted pair cables categorized in order of increasing bandwidth from category 1 to category 7, optical fiber cables, or any other conductor capable of facilitating communication between two network nodes. Hardware links make up a large amount of the total hardware required to implement a network. Reduction in the number of links is desirable from a number of standpoints, including; a capital cost savings in the setup of the network and replacement of cabling after failure, and, a reduction in the complexity associated with manually ensuring hardware links are connected correctly.
The operation of network nodes can be conceptually divided between a data-plane and a control-plane, wherein the data-plane comprises the physical hardware used to forward data packets through a piece of network hardware, and the control-plane comprises the software that analyzes data packets arriving at, for example, a switch port, and executes certain redirection processes in response to the data packet's arrival. The control-plane maintains a routing table, listing all network addresses reachable from the given switch, and instructs the data-plane as to how to forward the data packet.
A centrally-controlled network, otherwise referred to as a software-defined network, is a methodology that allows for centralized control of a network of nodes from a dedicated hardware server, referred to as a centralized controller. Alternatively, a network may implement logically-centralized control of nodes, wherein a logically-centralized controller may be implemented as distributed processes across multiple different central processing units (CPUs) in multiple servers. To implement centralized control, the control-plane is removed from individual switches and routers, and replaced by an OpenFlow agent, which allows for remote control from a global control plane (otherwise referred to as a centralized controller, or simply as a controller).
An OpenFlow switch is an example of a network node that is controlled from a centralized controller. An OpenFlow switch primarily consists of a flow table, which informs the switch as to how to process incoming packets, a secure channel that connects to the global control plane, and the OpenFlow protocol that enables a centralized controller to communicate with the switch. A centralized controller, by using the OpenFlow protocol, can remotely program switch flow tables, send packets on any switch port, and receive packets from any switch port. Methodology for centralized control is described by OpenFlow, at www.openflow.org.
The complexity and cost associated with the hardware links for establishing network connectivity represents a problem in a centrally-controlled network. Currently, the methods for establishing network connectivity in a centrally-controlled network include the following two examples.
A first method implements a separate control-plane network (CPN), with all switches and controllers connected to the CPN using out-of-band (OOB) hardware links such that there is a dedicated hardware link between a switch and a controller for control information, and separate hardware used to send data, where “data” refers to all information not used for network control. In contrast, an in-band (IB) connection sends both data and control information on the same hardware links. The drawback to the use of a CPN is the added cost associated with the construction and maintenance of the separate CPN. Furthermore, a separate CPN is likely to have substantially less redundancy than a data-plane network, due to the much larger number of hardware links required to service a data network. The methodology associated with a CPN can therefore be described as more prone to failure.
A second method for establishing network connectivity in a centrally-controlled network uses a hybrid model, where, in addition to the OpenFlow protocol, switches run a routing protocol (such as Open Shortest Path First (OSPF), or Intermediate System to Intermediate System (IS-IS)). The drawback associated with this methodology relates to the extra switch complexity and configuration that is required to run the protocol.
As such, there is a need for a more efficient method of implementing centralized control in a network and for reducing the network hardware required for the implementation.